#include <iostream>

class Base
{
public:
    virtual void show()
    {
        std::cout<<"Base"<<std::endl;
    }
private:

};

class Derived:public Base
{
public:
#if 0
    void Show() // 把小写改成大写，当子类函数和基类函数名字不一样时，调不到子类函数
    {
        std::cout<<"Derived"<<std::endl;
    }
#endif

#if 1
    void show(int a) // 加了参数，也调不到子类
    {
        std::cout<<"Derived"<<std::endl;
    }
#endif
// 所以只有在子类函数和基类函数完全相同的情况下（子类重写基类函数），才能构成多态
private:
};

int main()
{
    Base *b = new Derived;
    b->show();
    return 0;
}